package com.project.pojo.dto;

import com.project.entity.CmsRecoveryOrderPro;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @Description: 回收订单出参类
 * @Author: zhuchi
 * @CreateDate: 2020/11/14 11:15
 * @Version: 1.0
 */
@Data
@ApiModel(value = "回收订单出参类")
public class RecoveryOrderDTO {

    /**
     * 回收订单ID
     */
    @ApiModelProperty(value = "回收订单ID")
    private Long recoveryOrderId;

    /**
     * 用户ID
     */
    @ApiModelProperty(value = "用户ID")
    private Long userId;

    /**
     * 接单回收员ID
     */
    @ApiModelProperty(value = "接单回收员ID")
    private Long recoveryMemberId;

    /**
     * 接单用户ID
     */
    @ApiModelProperty(value = "接单用户ID")
    private Long memberUserId;

    /**
     * 订单号
     */
    @ApiModelProperty(value = "订单号")
    private String orderNumber;

    /**
     * 下单总数
     */
    @ApiModelProperty(value = "下单总数")
    private Integer quantity;

    /**
     * 预估金额
     */
    @ApiModelProperty(value = "预估金额")
    private BigDecimal estimateAmount;

    /**
     * 实际金额
     */
    @ApiModelProperty(value = "实际金额")
    private BigDecimal realAmount;

    /**
     * 联系人
     */
    @ApiModelProperty(value = "联系人")
    private String receiveName;

    /**
     * 联系方式
     */
    @ApiModelProperty(value = "联系方式")
    private String receiveMobile;

    /**
     * 地址
     */
    @ApiModelProperty(value = "联系方式")
    private String receiveAddress;

    /**
     * 经度
     */
    @ApiModelProperty(value = "经度")
    private Double longitude;

    /**
     * 纬度
     */
    @ApiModelProperty(value = "纬度")
    private Double latitude;

    /**
     * 上门时间开始
     */
    @ApiModelProperty(value = "上门时间开始")
    private Date visitingStartTime;

    /**
     * 上门时间结束
     */
    @ApiModelProperty(value = "上门时间结束")
    private Date visitingEndTime;

    /**
     * 下单时间
     */
    @ApiModelProperty(value = "下单时间")
    private Date createTime;

    /**
     * 最晚接单时间
     */
    @ApiModelProperty(value = "最晚接单时间")
    private Date lastReceivingTime;

    /**
     * 接单时间
     */
    @ApiModelProperty(value = "接单时间")
    private Date receivingTime;

    /**
     * 取消时间
     */
    @ApiModelProperty(value = "取消时间")
    private Date cancelTime;

    /**
     * 最晚可取消时间
     */
    @ApiModelProperty(value = "最晚可取消时间")
    private Date lastCancelTime;

    /**
     * 完成时间
     */
    @ApiModelProperty(value = "完成时间")
    private Date completeTime;

    /**
     * 取消原因
     */
    @ApiModelProperty(value = "取消原因")
    private String cancelReason;

    /**
     * 取消订单类型（1:用户取消,2:系统取消）
     */
    @ApiModelProperty(value = "取消订单类型（1:用户取消,2:系统取消）")
    private Integer cancelType;

    /**
     * 状态（1:待接单,2:已接单,3:已完成,4:已取消）
     */
    @ApiModelProperty(value = "状态（1:待接单,2:已接单,3:已完成,4:已取消）")
    private Integer state;

    /**
     * 评论状态（1:待评论,2:已评论）
     */
    @ApiModelProperty(value = "评论状态（1:待评论,2:已评论）")
    private Integer commentState;


    //下单用户信息
    /**
     * 昵称
     */
    @ApiModelProperty(value = "下单用户昵称")
    private String wxNickname;

    /**
     * 头像
     */
    @ApiModelProperty(value = "下单用户头像")
    private String wxPortrait;

    //回收员信息
    /**
     * 回收员手机号
     */
    @ApiModelProperty(value = "回收员手机号")
    private String recoveryMemberMobile;

    /**
     * 回收员昵称
     */
    @ApiModelProperty(value = "回收员昵称")
    private String recoveryMemberNickName;

    /**
     * 回收员真实姓名
     */
    @ApiModelProperty(value = "回收员真实姓名")
    private String recoveryMemberRealName;

    /**
     * 回收员头像
     */
    @ApiModelProperty(value = "回收员头像")
    private String recoveryMemberWxPortrait;

    /**
     * 距离（单位：米）
     */
    @ApiModelProperty(value = "距离（单位：米）")
    private Integer distance;

    /**
     * 回收订单商品信息
     */
    @ApiModelProperty(value = "回收订单商品信息")
    private List<CmsRecoveryOrderPro> recoveryOrderPros;
}
